package com.firefly.app.biz.dataobject;

import java.io.Serializable;

import com.alibaba.fastjson.JSONObject;

/**
 * 所有DO类的基础类.
 * 
 * @author David.Huang
 */
public abstract class BaseDO implements Serializable {

	private static final long serialVersionUID = 9148093308528878500L;

	/**
	 * 输出属性为JSON格式.
	 * 
	 * @param isAll 是否打印全部属性
	 * @return 属性为JSON格式的字符串
	 */
	private String toJson(boolean isAll) {
		return JSONObject.toJSONString(this);
	}

	/**
	 * 输出不为空的属性为JSON格式(仅为空).
	 * 
	 * @return 不为空的属性为JSON格式的字符串
	 */
	public String toJson() {
		return this.toJson(false);
	}

	/**
	 * 输出所有属性为JSON格式(无论是否为空).
	 * 
	 * @return 所有属性为JSON格式的字符串
	 */
	public String allToJson() {
		return this.toJson(true);
	}

	/**
	 * 属性输出方法.
	 * 
	 * @return 所有属性键值对的字符串.
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		try {
			return JSONObject.toJSONString(this);
		} catch (Exception e) {
			return super.toString();
		}
	}
	
	
}
